import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class Main8 {
    /**
     * 题目描述: 数据表记录包含表索引和数值（int范围的整数），请对表索引相同的记录进行合并，即将相同索引的数值进行求和运算，输出按照key值升序进行输出。。
     *
     *
     * 输入描述：
     * 4
     * 0 1
     * 0 2
     * 1 2
     * 3 4
     * 输出描述：
     * 0 3
     * 1 2
     * 3 4
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
           int next = scanner.nextInt();
            TreeMap<Integer, Integer> treeMap = new TreeMap<>();
            for (int i =0; i<next;i++){
                int key = scanner.nextInt();
                int value = scanner.nextInt();
                if (treeMap.containsKey(key)){
                    treeMap.put(key, treeMap.get(key)+value);
                }else{
                    treeMap.put(key, value);
                }
            }
            treeMap.entrySet().stream().forEach(i -> {
                System.out.println(i.getKey() + " " + i.getValue());
            });
        }


    }
}
